1. 什么是大端小端?如何判断大端小端?
1.1 什么是大端小端
大端和小端是指在计算机系统中,不同字节顺序的存储方式。 在一个字节序列中,如果最高位字节存在低有效地址,那么称为大端字节序;反之,如果最低位字节存在低有效地址,那么称为小端字节序。
[例]
int x = 0x12345678; //0x12为最高位有效字节
大端字节序:0x12 0x34 0x56 0x78;
小端字节序:0x78 0x56 0x34 0x12;
大端字节序和小端字节序的出现主要是因为不同的处理器和系统对于多字节数据(如整型、浮点型等)存储方式的不同。 比如,Intel x86系列处理器采用小端字节序,而keil, c51,Motorola系列处理器采用大端字节序。有些ARM处理器还可以通过硬件来选择是大端存储模式还是小端存储模式。
1.2 如何判断大端小端?
可通过程序判断。具体来说就是打印出数据的字节序,再按照大小端不同的存储方式进行判断。
[例]
#include
int main() {
int num = 1;// 0x 00 00 00 01
char* ptr = (char*)#//如果是大端法,ptr指向的低有效地址上值为0x00;小端法,*ptr = 0x01;
if (*ptr == 1) {
std::cout |